﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Biciq.Logica;
using System.Globalization;
using DevExpress.Web.ASPxClasses;
using Biciq.Web.UI.Base;
using Biciq.Datos;


namespace Biciq.Web.UI.Seguridades
{
    public partial class Rol :BasePage
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.traerDatos("");
            }
        }
        public void  traerDatos(string nombre)
        {
            CultureInfo cultura = (CultureInfo)Session["MyUICulture"];
            SeguridadServicio  servicio = new SeguridadServicio();
         
            ASPxGridView1.DataSource = servicio.consultarRol(nombre, cultura.Name);
            ASPxGridView1.DataBind();
        }

        protected void ASPxGridView1_AfterPerformCallback(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            traerDatos("");
        }

        protected void ASPxGridView1_CustomButtonCallback(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewCustomButtonCallbackEventArgs e)
        {
            var idRol = ASPxGridView1.GetRowValues(e.VisibleIndex, "id");
            if (e.ButtonID == "editar")
            {
                ASPxWebControl.RedirectOnCallback("MantenimientoRol.aspx?idRol=" + idRol);
            }
           
            if (e.ButtonID=="eliminar")
            {
               Comun comun = new Comun();
               SeguridadServicio seguridades = new SeguridadServicio();
               Biciq.Datos.Rol rol = seguridades.consultarRol(Guid.Parse(idRol.ToString()));
               if (rol.Usuarios.Where(u=>u.estado=="ACT").ToList().Count > 0)
               {
                   WUCMensaje.MensajeError("El Rol esta siendo usado por usuarios activos en el sistema, no puede eliminar el Rol" );
                   MessagePopup.Show();
                   return;
               }
               rol.estado = "INA";
               Result result =  comun.modificarObjeto(rol, "Rols");
               if (!result.estado)
               {
                   WUCMensaje.MensajeError("Error al eliminar Rol de Sistema: " + result.mensaje);
                   MessagePopup.Show();
               }
               else
               {
                   traerDatos("");

               }



            }
           
        }


      

       

      


    }
}